// 首先讲解文件操作
const fs = require('fs')
const path = require('path')

// path.resolve 方法拼接文件名
// __dirname 相当于一个全局变量，指明当前的文件路径
// // fullFileName 就可获取绝对路径
// const fullFileName = path.resolve(__dirname, 'files', 'a.json')

// // 异步的读取文件
// fs.readFile(fullFileName, (err, data) => {
//     // 如果报错了
//     if (err) {
//         console.error(err)
//         return
//     }

//     // 如果没错，将数据以二进制的形式打印出来
//     console.log(data.toString())
// })

// callback 方式获取一个文件的内容
function getFileContent(fileName, callback) {
    const fullFileName = path.resolve(__dirname, 'files', fileName)

    // 异步的读取文件
    fs.readFile(fullFileName, (err, data) => {
        // 如果报错了
        if (err) {
            console.error(err)
            return
        }

        // // 如果没错，将数据以二进制的形式打印出来
        // console.log(data.toString())
        // 如果没错，将数据传到 callback 中
        callback(
            JSON.parse(data.toString())
        )
    })
}

// 测试 callback hell
getFileContent('a.json', aData => {
    console.log('a data', aData)
    getFileContent(aData.next, bData => {
        console.log('b data', bData)
        getFileContent(bData.next, cData => {
            console.log('c data', cData)
        })
    })
})
